﻿#ifndef TCPSERVER_H
#define TCPSERVER_H

#include <iostream>
#include <vector>
extern "C" {
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <strings.h>
#include <stdlib.h>
#include <pthread.h>
}
#include "tcpsession.h"
#include "type_def.h"

using namespace std;

extern vector<clientData *> *clientArray; // 用户数据数组
extern pthread_mutex_t mutex;             // 互斥锁

class TcpServer {
  private:
    int serverFd;                      // 服务端文件描述符
  public:
    TcpServer();
    int initSocket();    // 初始化服务端Socket
    clientData *listenLink();   // 监听客户端连接
    void connectClient();       // 连接客户端
};

#endif // TCPSERVER_H
